<!doctype html>
<html lang="zh-cn">
<head>

    <meta charset="utf-8">
    <meta name="generator" content="Hugo 0.57.2" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>UML基础知识积累 | The Sky of OtsWang</title>
    <meta property="og:title" content="UML基础知识积累 - The Sky of OtsWang">
    <meta property="og:type" content="article">
        
    <meta property="article:published_time" content="2019-05-27T15:04:23&#43;08:00">
        
        
    <meta property="article:modified_time" content="2019-05-27T15:04:23&#43;08:00">
        
    <meta name="Keywords" content="golang,go语言,otswang,java,博客,python">
    <meta name="description" content="UML基础知识积累">
        
    <meta name="author" content="OtsWang">
    <meta property="og:url" content="https://otswang.gitee.io/hugo/post/other/uml/">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">

    <link rel="stylesheet" href="/hugo/css/normalize.css">
    
        <link rel="stylesheet" href="/hugo/css/prism.css">
    
    <link rel="stylesheet" href="/hugo/css/style.css">
    <script type="text/javascript" src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>

    


    
    
</head>

<body>
<header id="header" class="clearfix">
    <div class="container">
        <div class="col-group">
            <div class="site-name ">
                
                    <a id="logo" href="https://otswang.gitee.io/hugo/">
                        The Sky of OtsWang
                    </a>
                
                <p class="description">擅长写HelloWorld的小小码农</p>
            </div>
            <div>
                <nav id="nav-menu" class="clearfix">
                    
                    
                    <a  href="https://otswang.gitee.io/hugo/" title="Home">Home</a>
                    
                    <a  href="https://otswang.gitee.io/hugo/tags/" title="Tags">Tags</a>
                    
                    <a  href="https://otswang.gitee.io/hugo/categories/" title="Categories">Categories</a>
                    
                    <a  href="https://otswang.gitee.io/hugo/archives/" title="Archives">Archives</a>
                    
                    <a  href="https://otswang.gitee.io/hugo/about/" title="About">About</a>
                    
                </nav>
            </div>
        </div>
    </div>
</header>


<div id="body">
    <div class="container">
        <div class="col-group">

            <div class="col-8" id="main">
                <div class="res-cons">
                    <article class="post">
                        <header>
                            <h1 class="post-title">UML基础知识积累</h1>
                        </header>
                        <date class="post-meta meta-date">
                            2019年5月27日
                        </date>
                        
                        <div class="post-meta">
                            <span>|</span>
                            
                                <span class="meta-category"><a href="https://otswang.gitee.io/hugo/categories/other">Other</a></span>
                            
                        </div>
                        
                        
                        
                        <div class="post-content">
                            <p>uml 总结</p>

<h2 id="泛化关系">泛化关系</h2>

<p>泛化关系为 is-a 的关系；两个对象之间如果可以用 is-a 来表示，就是泛化关系。泛化关系用一条<strong>带空心箭头的直线</strong>表示。通常在程序里面泛化表现为继承于非抽象类。</p>

<h2 id="实现关系">实现关系</h2>

<p>实现关系用一条<strong>带空心箭头的虚线</strong>表示。通常程序里面实现关系表现为继承抽象类。</p>

<h2 id="聚合关系">聚合关系</h2>

<p>聚合关系用一条<strong>带空心菱形箭头的直线</strong>表示，与组合关系一样，聚合关系表示整体由部分构成的关系，与组合关系不同的是，整体和部分不是强依赖的，即使整体不存在了，部分仍然存在。</p>

<h2 id="组合关系">组合关系</h2>

<p>组合关系用一条<strong>带实心菱形箭头直线</strong>表示，与聚合关系一样，组合关系同样表示整体由部分构成的关系，不同之处在于整体和部分是强依赖关系，如果整体不存在了，部分也不复存在。菱形从局部指向整体。</p>

<h2 id="关联关系">关联关系</h2>

<p>关联关系通常用一条直线表示，当然如果需要标明方向可以添加箭头。它是描述不同的类对象之间的关系，通常不会随着状态的变化而变化，可以理解为被关联者属于关联者的一部分。比如，手机就是码农的一部分，不会因为他上班与否而变化所属关系。通常情况在程序里面以类变量的方式表现。</p>

<h2 id="依赖关系">依赖关系</h2>

<p>依赖关系是用一套带箭头的虚线表示，他通常描述一个对象在运行期间会用到另一个对象的关系。比如码农只有在工作的时候才会用到 Mac 电脑，所以这种依赖关系是依赖于运行状态的。通常情况下是在程序里面通过构造函数、形参等体现。</p>

<h2 id="示例">示例</h2>

<p><img src="./uml/UML.png" /></p>

<p><strong>本文转载自: <a href="https://mp.weixin.qq.com/s/N92K9WwvHdpbej2btC-ofA">https://mp.weixin.qq.com/s/N92K9WwvHdpbej2btC-ofA</a></strong></p>

<h2 id="其他">其他</h2>

<h3 id="关联与依赖的区别">关联与依赖的区别</h3>

<p>某个类已成员变量的方式出现在另一个类中，则是关联关系；某个类以局部变量的形式出现，则是依赖关系。</p>

<h2 id="数量关系-多重性">数量关系 多重性</h2>

<p>用于说明组合关系中的对象的对比数量关系。通常有如下几种符号：</p>

<pre><code>1 : 一个
* : 零个或多个
1..* : 一个或多个
0..1 : 零个或一个
</code></pre>

<p><img src="./uml/image-20191115111546776.png" alt="数量关系图" /></p>

<p>一个公司有多个部门，一个部门只能对应一个公司；</p>

<p>一个公司有一个名称，一个名称也只能对应一个公司；</p>

<p>一个公司可以有多个董事，一个董事也可以在多个公司任职。2</p>
                        </div>

                        


                        


                        <div class="post-meta meta-tags">
                            
                            <ul class="clearfix">
                                
                                <li><a href="https://otswang.gitee.io/hugo/tags/uml">UML</a></li>
                                
                            </ul>
                            
                        </div>
                    </article>
                    
    

    
    
                </div>
            </div>
            <div id="secondary">

    <section class="widget">
        <form id="search" action="//www.google.com/search" method="get" accept-charset="utf-8" target="_blank" _lpchecked="1">
      
      <input type="text" name="q" maxlength="20" placeholder="Search">
      <input type="hidden" name="sitesearch" value="https://otswang.gitee.io/hugo/">
      <button type="submit" class="submit icon-search"></button>
</form>
    </section>

    
    <div class="clear">
        <div class="toc-article">
            <div class="toc-title">文章目录</dixsv>
            <nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#泛化关系">泛化关系</a></li>
<li><a href="#实现关系">实现关系</a></li>
<li><a href="#聚合关系">聚合关系</a></li>
<li><a href="#组合关系">组合关系</a></li>
<li><a href="#关联关系">关联关系</a></li>
<li><a href="#依赖关系">依赖关系</a></li>
<li><a href="#示例">示例</a></li>
<li><a href="#其他">其他</a>
<ul>
<li><a href="#关联与依赖的区别">关联与依赖的区别</a></li>
</ul></li>
<li><a href="#数量关系-多重性">数量关系 多重性</a></li>
</ul></li>
</ul>
</nav>
        </div>
    </div>
    

</div>
        </div>
    </div>
</div>
<footer id="footer">
    <div class="container">
        &copy; 2020 <a href="https://otswang.gitee.io/hugo/">The Sky of OtsWang By OtsWang</a>.
        Powered by <a rel="nofollow noreferer noopener" href="https://gohugo.io" target="_blank">Hugo</a>.
        <a href="https://www.flysnow.org/" target="_blank">Theme</a> based on <a href="https://github.com/Dudiao137/maupassant-hugo" target="_blank">maupassant-ots</a>.
        
    </div>
</footer>


    <script type="text/javascript">
    
    (function(){
        $("pre code").parent().addClass("line-numbers")
    }())

    window.MathJax = {
        tex2jax: {
            inlineMath: [ ['$','$'] ],
            processEscapes: true
        }
    };
    </script>
    <script type="text/javascript" src="/hugo/js/prism.js" async="true"></script>
    <script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async></script>

<a id="rocket" href="#top"></a>
<script type="text/javascript" src="/hugo/js/totop.js?v=0.0.0" async=""></script>







 
 <script src="https://mermaidjs.github.io/scripts/mermaid.min.js"></script>
 <script>
       mermaid.initialize({ startOnLoad: true });
 </script>
</body>
</html>
